; Alt-S for Sampler Menu @eraseprompt, @prompt("The Framework II Sampler was written by Greg Stikeleather and David McLoughlin",2), @beep(0,600), @eraseprompt eather and Davi Library Macros wJ-m> ; primary Sampler control program @Init, @if(@memavail < 70000, @list( @echo(#on), @keyfilter({ctrl-break}), @keyfilter({Alt-S}), @beep(500,10),@beep(500,10), @prompt("There does not appear to be enough memory " & "available for the Framework II Sampler"), @beep(0,700), @Exit @GetCode, @XSmpCode, @Clear @Exit {Alt-S};Start Sampler Sampler Messages ; makes desktop appear blank @memavail, @display(Blank), @Flush Blank *** One Moment Please *** *** Hands On with Framework II *** Refer to page 14 of the Framework II Sampler booklet for a quick orientation to the Hands-On exercises. During the Hands-On session, you can return to the Sampler Menu at any time by holding down key and pressing Press any key to continue. Hands >>> Sampler Unable to Continue <<< The Framework II Sampler is designed to be run from the floppy-disk drive or the "C" hard-disk drive. It appears that all the necessary program files are not available on drive "A" or "C". For detailed instructions on how to start the Framework II Sampler, please refer to page 10 of the Framework II Sampler booklet. Press any key to quit the Sampler and return to DOS. @iser ; Sampler program exits if necessary files aren't found on A: or C: @keyfilter({all},exit) @echo(#on), @Blank, @display(bail), @eraseprompt, @echo(#off), >>> Automated Demonstration Interrupted <<< *** One Moment Please *** >>> Sampler Program Stopped <<< *** Exiting to DOS *** Sampler Functions ; maintain program control if {ctrl-break} while critical files ; aren't being deleted @keyfilter({ctrl-break},break2), @Back ng deleted Break #TBD! ; maintain program control if {ctrl-break} while critical files ; aren't being deleted @keyfilter({ctrl-break},break), @Back deleted Break2 wR,m> ; maintain program control if {ctrl-break} while critical files ; aren't being deleted -- return to Sampler Menu @echo(#on), @Blank, @beep(500,10),@beep(500,10), @eraseprompt, @display(Stop), @b(300), @clean, @XSmpCode.Main, @Hands on Prep @Clear clean, ; exit program if {ctrl-break} while critical files ; are being deleted @keyfilter({ctrl-break},exit2), ; exit program if {ctrl-break} while critical files ; are being deleted @keyfilter({ctrl-break},exit), Exit2 #TRUE ; that's all folks @Flush, @performkeys("{esc}{esc}{esc}{esc}"), @echo(#on), @iserr(@unhide(Welcome)), @iserr(@setselection("Welcome")), @Blank, @beep(900,10),@beep(900,10),@beep(900,10),@beep(900,10) @eraseprompt, @display(Bye), @echo(#off),@b(200), @performkeys("{ctrl-d}c{ctrl-c}e{home}{f6}{end}{del}"), @memavail, @Flush, @setselection("Library"), @performkeys("{dnlevel}{ctrl-c}e{ctrl-d}qny") ection("Librar #FUNCTION ; pause routine, no prompt @memavail, @beep(0,@item1), @Flush #FALSE ; prompt used during set-up activity @eraseprompt, @prompt("One Moment Please...",31), @Flush #N/A! ; delete all unnecessary files from desktop @memavail, @Flush, @performkeys("{esc}{esc}{esc}{esc}"), @iserr(@unhide(Welcome)), @memavail, @Blank, @echo(#off), @iserr(@hide(Welcome)), @memavail, @Flush, @performkeys("{ctrl-d}c{ctrl-c}e{home}{f6}{end}{del}"), @memavail, @iserr(@unhide(Welcome)), @memavail, @iserr(@setselection("Welcome")), @echo(#on) @mema Clean #FALSE ; flush undesired keystrokes from keyboard buffer @while(@nextkey(0)<>{null},) rom keyboard b Flush #N/A! ; execute text performkeys one letter at a time @local(cnt,len), cnt := 1, len := @len(@item1), @while(cnt<=len, @Flush, @performkeys(@mid(@item1,cnt,1)), cnt := cnt+1 Oneltr #FUNCTION ; repeat the same keystroke slowly - @Rptkey(#,{keyname},dur) @local(cnt), cnt := 1, @while(cnt<=@item1, @Flush, @performkeys(@item2), @b(@item3), cnt := cnt+1 Rptkey #N/A! ; position frame on desktop - @Pos("framename",col,row) @local(C,c1,c2,R,r1,r2), @setselection(@item1), C := @item2 - 1, R := @item3 - 1, @if(C < 0,C := 0), @if(C > 77,C := 77), @if(R < 0,R := 0), @if(R > 18,R := 18), c1 := @integer(@floor(C/8)), c2 := @integer(@mod(C,8)), r1 := @integer(@floor(R/4)), r2 := @integer(@mod(R,4)), @Flush, @performkeys("{f3}{ctrl-home}" & "{ctrl-"& c1 &"}{ctrl-rightarrow}" & "{ctrl-"& c2 &"}{rightarrow}" & "{ctrl-"& r1 &"}{ctrl-dnarrow}" & "{ctrl-"& r2 &"}{dnarrow}" & "{return}{return}"), @Flush "{ctrl-"& #N/A! ; size frame on desktop - @Size("framename",width,height) @local(W,w1,w2,H,h1,h2), @setselection(@item1), W := @item2 - 1, @if(@frametype = 6, H := @item3 - 3, H := @item3 - 1 @if(W < 0,W := 0), @if(W > 77,W := 77), @if(H < 0,H := 0), @if(H > 18,H := 18), w1 := @integer(@floor(W/8)), w2 := @integer(@mod(W,8)), h1 := @integer(@floor(H/4)), h2 := @integer(@mod(H,4)), @Flush, @performkeys("{f4}{ctrl-home}" & "{ctrl-"& w1 &"}{ctrl-rightarrow}" & "{ctrl-"& w2 &"}{rightarrow}" & "{ctrl-"& h1 &"}{ctrl-dnarrow}" & "{ctrl-"& h2 &"}{dnarrow}" & "{return}{return}"), @Flush #FUNZ #FUNCTION ; create placeholder tray on desktop - @Sham("name for frame") @memavail, @performkeys("{ctrl-uplevel}{ctrl-c}e"& @item1 & "{return}{return}") @perfo 319680 ; initialize Framework II environment for Sampler program @keyfilter({ctrl-break},Exit), @keyfilter({Alt-S},Stop), @Flush, @performkeys("{esc}{esc}{esc}{esc}"), @iserr(@unhide(XStart)), @iserr(@setselection("XStart")), @Blank, @eraseprompt, @prompt("Framework II Sampler, Copyright (c) Ashton-Tate 1985",15), @display(Hold), @echo(#off), @iserr(@hide(XStart)), @iserr(@setselection("a:")), @memavail, @Flush, @performkeys("{ctrl-d}c{ctrl-c}e{home}{f6}{end}{del}"), @memavail, @iserr(@setselection("a:")), @Flush, ; --- create frame to keep cursor from bleeding through menu @performkeys("{ctrl-c}eWelcome{return}{ctrl-f}d{ctrl-f}h{f4}" & "{ctrl-home}{leftarrow}{f3}{ctrl-home}{end}{uparrow}" & "{leftarrow}{leftarrow}{leftarrow}{leftarrow}{return}" & "{dnlevel} {ctrl-home}{uplevel}"), @if(@sense(#ET),@performkeys("{ctrl-e}t")), @if(@sense(#ED),@performkeys("{ctrl-e}d")), @if(@sense(#LF),@performkeys("{ctrl-l}f")), @if(@not(@sense(#LL)),@performkeys("{ctrl-l}l")), @if(@not(@sense(#LC)),@performkeys("{ctrl-l}c")), @memavail #N/A! ; load XSMPCODE.FW2 from disk @echo(#off), @iserr(#FALSE), @memavail, @Flush, @if(@setdrive="B:", @performkeys("{ctrl-d}ga:XSmpCode.fw2{return}"), @performkeys("{ctrl-d}gXSmpCode.fw2{return}") @if(@iserr( @setselection("XSmpCode") @list( @performkeys("{ctrl-d}gc:XSmpCode.fw2{return}"), @if(@iserr( @setselection("XSmpCode") @list( @performkeys("{ctrl-d}ga:XSmpCode.fw2{return}"), @if(@iserr( @setselection("XSmpCode") @bail, @setdrive("A:") ) ), @setdrive("C:") @if(@setdrive="B:", @setdrive("A:") @iserr(@hide(XSmpCode)), @memavail GetCode #N/A! ; load XSMPFILE.FW2 from disk, hide files on hidden desktop @echo(#off), @memavail, @Flush, XSmpCode.rtn := #false, @iserr(#FALSE), @performkeys("{ctrl-d}gXSmpFile.fw2{return}"), @if(@iserr( @setselection("XSmpFile") @bail @performkeys("{dnlevel}{home}{f6}{end}" & "{f7}{uplevel}{return}{ctrl-d}c"), @memavail, @Flush, @performkeys("{ctrl-d}g{f6}{end}{del}{return}"), @memavail, @setselection("Welcome"), @performkeys("{return}"), @setselection("XSmpFile"), @performkeys("{del}"), @memavail, @hide(XSmpCode), @memavail, @hide(Costs),@hide(Budget),@hide(Summary), @memavail, @keyfilter({ctrl-break},break) Summary), GetFiles #N/A! ; unhide and delete all Sample Files except Summary and Budget @keyfilter({ctrl-break},Exit), @iserr(@unhide(Welcome)), @iserr(@setselection("Welcome")), @Blank, @display(Hold), @echo(#off), @setselection("Library"), @iserr(@unhide(Costs)), @iserr(@unhide(Report)), @memavail, @performkeys("{home}{f6}{end}{del}"), @memavail, @iserr(@unhide(Budget)), @memavail, @iserr(@pos("Budget",1,1)), @iserr(@size("Budget",70,6)), @iserr(@unhide(Summary)), @memavail, @iserr(@pos("Summary",1,3)), @iserr(@size("Summary",70,7)), @performkeys("{ctrl-d}c{ctrl-c}{home}{dnarrow}{esc}") Hands On Prep wJ-m>x ; unhide and delete Sampler code for Hands-On @setselection("Library"), @iserr(@unhide(XSmpCode)), @iserr(@setselection("XSmpCode")), @performkeys("{del}"), @memavail, @setselection("Library"), @performkeys("{dnarrow}{scroll-lock}"), @setselection("Budget"), @Flush, @echo(#on), @display(Hands), @keyfilter({ctrl-break}), @eraseprompt, @Flush, @nextkey, @Echo(#on), @keyfilter({Alt-S}) Clear